🎖️GitЯра🎖️
Node / meshtastic / Meshtastic-Android / files / core / model / src / commonTest / kotlin / org / meshtastic / core / model / NodeAddressTest.kt
Displaying Raw • Download
core/model/src/commonTest/kotlin/org/meshtastic/core/model/NodeAddressTest.kt b4bedd92fcc8d65daff79200d71f6ebc3d8f0cfa (b4bedd92) Text, 7.82 KB
T8b949e/*
* Copyright (c) 2026 Meshtastic LLC
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
Tff7b72package T7ee787org.meshtastic.core.model
Tff7b72import T7ee787org.meshtastic.proto.PortNum
Tff7b72import T7ee787kotlin.test.Test
Tff7b72import T7ee787kotlin.test.assertEquals
Tff7b72import T7ee787kotlin.test.assertFalse
Tff7b72import T7ee787kotlin.test.assertIs
Tff7b72import T7ee787kotlin.test.assertNull
Tff7b72import T7ee787kotlin.test.assertTrue
Tff7b72class T56d364NodeAddressTest Tb4b4b4{
T8b949e// --- fromString parsing ---
Tf0883e@Test
Tff7b72fun Td2a8fffromString_null_returnsBroadcastTb4b4b4(Tb4b4b4) Tb4b4b4{
Te6edf3assertEqualsTb4b4b4(Te6edf3NodeAddressTb4b4b4.Te6edf3BroadcastTb4b4b4, Te6edf3NodeAddressTb4b4b4.Te6edf3fromStringTb4b4b4(Tff7b72nullTb4b4b4)Tb4b4b4)
Tb4b4b4}
Tf0883e@Test
Tff7b72fun Td2a8fffromString_broadcastString_returnsBroadcastTb4b4b4(Tb4b4b4) Tb4b4b4{
Te6edf3assertEqualsTb4b4b4(Te6edf3NodeAddressTb4b4b4.Te6edf3BroadcastTb4b4b4, Te6edf3NodeAddressTb4b4b4.Te6edf3fromStringTb4b4b4(Ta5d6ff"Ta5d6ff^allTa5d6ff"Tb4b4b4)Tb4b4b4)
Tb4b4b4}
Tf0883e@Test
Tff7b72fun Td2a8fffromString_localString_returnsLocalTb4b4b4(Tb4b4b4) Tb4b4b4{
Te6edf3assertEqualsTb4b4b4(Te6edf3NodeAddressTb4b4b4.Te6edf3LocalTb4b4b4, Te6edf3NodeAddressTb4b4b4.Te6edf3fromStringTb4b4b4(Ta5d6ff"Ta5d6ff^localTa5d6ff"Tb4b4b4)Tb4b4b4)
Tb4b4b4}
Tf0883e@Test
Tff7b72fun Td2a8fffromString_validHexId_returnsByNumTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72val Te6edf3result Tff7b72= Te6edf3NodeAddressTb4b4b4.Te6edf3fromStringTb4b4b4(Ta5d6ff"Ta5d6ff!a1b2c3d4Ta5d6ff"Tb4b4b4)
Te6edf3assertIsTff7b72<Te6edf3NodeAddressTb4b4b4.Te6edf3ByNumTff7b72>Tb4b4b4(Te6edf3resultTb4b4b4)
Te6edf3assertEqualsTb4b4b4(T79c0ff0Te6edf3xa1b2c3d4Tb4b4b4.Te6edf3toIntTb4b4b4(Tb4b4b4)Tb4b4b4, Te6edf3resultTb4b4b4.Te6edf3numTb4b4b4)
Tb4b4b4}
Tf0883e@Test
Tff7b72fun Td2a8fffromString_shortHexId_returnsByNumTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72val Te6edf3result Tff7b72= Te6edf3NodeAddressTb4b4b4.Te6edf3fromStringTb4b4b4(Ta5d6ff"Ta5d6ff!1234Ta5d6ff"Tb4b4b4)
Te6edf3assertIsTff7b72<Te6edf3NodeAddressTb4b4b4.Te6edf3ByNumTff7b72>Tb4b4b4(Te6edf3resultTb4b4b4)
Te6edf3assertEqualsTb4b4b4(T79c0ff0Te6edf3x1234Tb4b4b4, Te6edf3resultTb4b4b4.Te6edf3numTb4b4b4)
Tb4b4b4}
Tf0883e@Test
Tff7b72fun Td2a8fffromString_invalidHexAfterBang_returnsByIdFallbackTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72val Te6edf3result Tff7b72= Te6edf3NodeAddressTb4b4b4.Te6edf3fromStringTb4b4b4(Ta5d6ff"Ta5d6ff!notahexTa5d6ff"Tb4b4b4)
Te6edf3assertIsTff7b72<Te6edf3NodeAddressTb4b4b4.Te6edf3ByIdTff7b72>Tb4b4b4(Te6edf3resultTb4b4b4)
Te6edf3assertEqualsTb4b4b4(Ta5d6ff"Ta5d6ff!notahexTa5d6ff"Tb4b4b4, Te6edf3resultTb4b4b4.Te6edf3idTb4b4b4)
Tb4b4b4}
Tf0883e@Test
Tff7b72fun Td2a8fffromString_arbitraryString_returnsByIdTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72val Te6edf3result Tff7b72= Te6edf3NodeAddressTb4b4b4.Te6edf3fromStringTb4b4b4(Ta5d6ff"Ta5d6ffsome-node-nameTa5d6ff"Tb4b4b4)
Te6edf3assertIsTff7b72<Te6edf3NodeAddressTb4b4b4.Te6edf3ByIdTff7b72>Tb4b4b4(Te6edf3resultTb4b4b4)
Te6edf3assertEqualsTb4b4b4(Ta5d6ff"Ta5d6ffsome-node-nameTa5d6ff"Tb4b4b4, Te6edf3resultTb4b4b4.Te6edf3idTb4b4b4)
Tb4b4b4}
Tf0883e@Test
Tff7b72fun Td2a8fffromString_emptyString_returnsByIdTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72val Te6edf3result Tff7b72= Te6edf3NodeAddressTb4b4b4.Te6edf3fromStringTb4b4b4(Ta5d6ff"Ta5d6ff"Tb4b4b4)
Te6edf3assertIsTff7b72<Te6edf3NodeAddressTb4b4b4.Te6edf3ByIdTff7b72>Tb4b4b4(Te6edf3resultTb4b4b4)
Te6edf3assertEqualsTb4b4b4(Ta5d6ff"Ta5d6ff"Tb4b4b4, Te6edf3resultTb4b4b4.Te6edf3idTb4b4b4)
Tb4b4b4}
T8b949e// --- numToDefaultId ---
Tf0883e@Test
Tff7b72fun Td2a8ffnumToDefaultId_typicalValue_formatsCorrectlyTb4b4b4(Tb4b4b4) Tb4b4b4{
Te6edf3assertEqualsTb4b4b4(Ta5d6ff"Ta5d6ff!a1b2c3d4Ta5d6ff"Tb4b4b4, Te6edf3NodeAddressTb4b4b4.Te6edf3numToDefaultIdTb4b4b4(T79c0ff0Te6edf3xa1b2c3d4Tb4b4b4.Te6edf3toIntTb4b4b4(Tb4b4b4)Tb4b4b4)Tb4b4b4)
Tb4b4b4}
Tf0883e@Test
Tff7b72fun Td2a8ffnumToDefaultId_zero_padsToEightCharsTb4b4b4(Tb4b4b4) Tb4b4b4{
Te6edf3assertEqualsTb4b4b4(Ta5d6ff"Ta5d6ff!00000000Ta5d6ff"Tb4b4b4, Te6edf3NodeAddressTb4b4b4.Te6edf3numToDefaultIdTb4b4b4(T79c0ff0Tb4b4b4)Tb4b4b4)
Tb4b4b4}
Tf0883e@Test
Tff7b72fun Td2a8ffnumToDefaultId_maxInt_formatsCorrectlyTb4b4b4(Tb4b4b4) Tb4b4b4{
Te6edf3assertEqualsTb4b4b4(Ta5d6ff"Ta5d6ff!7fffffffTa5d6ff"Tb4b4b4, Te6edf3NodeAddressTb4b4b4.Te6edf3numToDefaultIdTb4b4b4(Tffa657IntTb4b4b4.Te6edf3MAX_VALUETb4b4b4)Tb4b4b4)
Tb4b4b4}
Tf0883e@Test
Tff7b72fun Td2a8ffnumToDefaultId_negativeOne_formatsAsFffffffffTb4b4b4(Tb4b4b4) Tb4b4b4{
Te6edf3assertEqualsTb4b4b4(Ta5d6ff"Ta5d6ff!ffffffffTa5d6ff"Tb4b4b4, Te6edf3NodeAddressTb4b4b4.Te6edf3numToDefaultIdTb4b4b4(Tff7b72-T79c0ff1Tb4b4b4)Tb4b4b4)
Tb4b4b4}
T8b949e// --- idToNum ---
Tf0883e@Test
Tff7b72fun Td2a8ffidToNum_validHex_returnsIntTb4b4b4(Tb4b4b4) Tb4b4b4{
Te6edf3assertEqualsTb4b4b4(T79c0ff0Te6edf3xa1b2c3d4Tb4b4b4.Te6edf3toIntTb4b4b4(Tb4b4b4)Tb4b4b4, Te6edf3NodeAddressTb4b4b4.Te6edf3idToNumTb4b4b4(Ta5d6ff"Ta5d6ffa1b2c3d4Ta5d6ff"Tb4b4b4)Tb4b4b4)
Tb4b4b4}
Tf0883e@Test
Tff7b72fun Td2a8ffidToNum_withBangPrefix_stripsAndParsesTb4b4b4(Tb4b4b4) Tb4b4b4{
Te6edf3assertEqualsTb4b4b4(T79c0ff0Te6edf3x1234Tb4b4b4, Te6edf3NodeAddressTb4b4b4.Te6edf3idToNumTb4b4b4(Ta5d6ff"Ta5d6ff!1234Ta5d6ff"Tb4b4b4)Tb4b4b4)
Tb4b4b4}
Tf0883e@Test
Tff7b72fun Td2a8ffidToNum_null_returnsNullTb4b4b4(Tb4b4b4) Tb4b4b4{
Te6edf3assertNullTb4b4b4(Te6edf3NodeAddressTb4b4b4.Te6edf3idToNumTb4b4b4(Tff7b72nullTb4b4b4)Tb4b4b4)
Tb4b4b4}
Tf0883e@Test
Tff7b72fun Td2a8ffidToNum_emptyString_returnsNullTb4b4b4(Tb4b4b4) Tb4b4b4{
Te6edf3assertNullTb4b4b4(Te6edf3NodeAddressTb4b4b4.Te6edf3idToNumTb4b4b4(Ta5d6ff"Ta5d6ff"Tb4b4b4)Tb4b4b4)
Tb4b4b4}
Tf0883e@Test
Tff7b72fun Td2a8ffidToNum_nonHex_returnsNullTb4b4b4(Tb4b4b4) Tb4b4b4{
Te6edf3assertNullTb4b4b4(Te6edf3NodeAddressTb4b4b4.Te6edf3idToNumTb4b4b4(Ta5d6ff"Ta5d6ffzzzzzzzzTa5d6ff"Tb4b4b4)Tb4b4b4)
Tb4b4b4}
Tf0883e@Test
Tff7b72fun Td2a8ffidToNum_overflow_returnsNullTb4b4b4(Tb4b4b4) Tb4b4b4{
Te6edf3assertNullTb4b4b4(Te6edf3NodeAddressTb4b4b4.Te6edf3idToNumTb4b4b4(Ta5d6ff"Ta5d6ffffffffffffffffffffTa5d6ff"Tb4b4b4)Tb4b4b4)
Tb4b4b4}
T8b949e// --- roundtrip ---
Tf0883e@Test
Tff7b72fun Td2a8ffnumToDefaultId_idToNum_roundtripTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72val Te6edf3original Tff7b72= T79c0ff0Te6edf3xdeadbeefTb4b4b4.Te6edf3toIntTb4b4b4(Tb4b4b4)
Tff7b72val Te6edf3id Tff7b72= Te6edf3NodeAddressTb4b4b4.Te6edf3numToDefaultIdTb4b4b4(Te6edf3originalTb4b4b4)
Tff7b72val Te6edf3parsed Tff7b72= Te6edf3NodeAddressTb4b4b4.Te6edf3idToNumTb4b4b4(Te6edf3idTb4b4b4)
Te6edf3assertEqualsTb4b4b4(Te6edf3originalTb4b4b4, Te6edf3parsedTb4b4b4)
Tb4b4b4}
T8b949e// --- toIdString ---
Tf0883e@Test
Tff7b72fun Td2a8fftoIdString_broadcastTb4b4b4(Tb4b4b4) Tb4b4b4{
Te6edf3assertEqualsTb4b4b4(Ta5d6ff"Ta5d6ff^allTa5d6ff"Tb4b4b4, Te6edf3NodeAddressTb4b4b4.Te6edf3BroadcastTb4b4b4.Te6edf3toIdStringTb4b4b4(Tb4b4b4)Tb4b4b4)
Tb4b4b4}
Tf0883e@Test
Tff7b72fun Td2a8fftoIdString_localTb4b4b4(Tb4b4b4) Tb4b4b4{
Te6edf3assertEqualsTb4b4b4(Ta5d6ff"Ta5d6ff^localTa5d6ff"Tb4b4b4, Te6edf3NodeAddressTb4b4b4.Te6edf3LocalTb4b4b4.Te6edf3toIdStringTb4b4b4(Tb4b4b4)Tb4b4b4)
Tb4b4b4}
Tf0883e@Test
Tff7b72fun Td2a8fftoIdString_byNumTb4b4b4(Tb4b4b4) Tb4b4b4{
Te6edf3assertEqualsTb4b4b4(Ta5d6ff"Ta5d6ff!0000abcdTa5d6ff"Tb4b4b4, Te6edf3NodeAddressTb4b4b4.Te6edf3ByNumTb4b4b4(T79c0ff0Te6edf3xabcdTb4b4b4)Tb4b4b4.Te6edf3toIdStringTb4b4b4(Tb4b4b4)Tb4b4b4)
Tb4b4b4}
Tf0883e@Test
Tff7b72fun Td2a8fftoIdString_byIdTb4b4b4(Tb4b4b4) Tb4b4b4{
Te6edf3assertEqualsTb4b4b4(Ta5d6ff"Ta5d6ffcustom-idTa5d6ff"Tb4b4b4, Te6edf3NodeAddressTb4b4b4.Te6edf3ByIdTb4b4b4(Ta5d6ff"Ta5d6ffcustom-idTa5d6ff"Tb4b4b4)Tb4b4b4.Te6edf3toIdStringTb4b4b4(Tb4b4b4)Tb4b4b4)
Tb4b4b4}
T8b949e// --- toContactKey ---
Tf0883e@Test
Tff7b72fun Td2a8fftoContactKey_formatsChannelPlusIdTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72val Te6edf3key Tff7b72= Te6edf3NodeAddressTb4b4b4.Te6edf3BroadcastTb4b4b4.Te6edf3toContactKeyTb4b4b4(T79c0ff0Tb4b4b4)
Te6edf3assertEqualsTb4b4b4(Ta5d6ff"Ta5d6ff0^allTa5d6ff"Tb4b4b4, Te6edf3keyTb4b4b4.Te6edf3valueTb4b4b4)
Tb4b4b4}
Tf0883e@Test
Tff7b72fun Td2a8fftoContactKey_nonZeroChannelTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72val Te6edf3key Tff7b72= Te6edf3NodeAddressTb4b4b4.Te6edf3ByNumTb4b4b4(T79c0ff0Te6edf3x1234Tb4b4b4)Tb4b4b4.Te6edf3toContactKeyTb4b4b4(T79c0ff3Tb4b4b4)
Te6edf3assertEqualsTb4b4b4(Ta5d6ff"Ta5d6ff3!00001234Ta5d6ff"Tb4b4b4, Te6edf3keyTb4b4b4.Te6edf3valueTb4b4b4)
Tb4b4b4}
T8b949e// --- ContactKey ---
Tf0883e@Test
Tff7b72fun Td2a8ffcontactKey_channel_extractsFirstDigitTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72val Te6edf3key Tff7b72= Te6edf3ContactKeyTb4b4b4(Ta5d6ff"Ta5d6ff2!abcdef01Ta5d6ff"Tb4b4b4)
Te6edf3assertEqualsTb4b4b4(T79c0ff2Tb4b4b4, Te6edf3keyTb4b4b4.Te6edf3channelTb4b4b4)
Tb4b4b4}
Tf0883e@Test
Tff7b72fun Td2a8ffcontactKey_addressString_extractsAfterFirstCharTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72val Te6edf3key Tff7b72= Te6edf3ContactKeyTb4b4b4(Ta5d6ff"Ta5d6ff0^allTa5d6ff"Tb4b4b4)
Te6edf3assertEqualsTb4b4b4(Ta5d6ff"Ta5d6ff^allTa5d6ff"Tb4b4b4, Te6edf3keyTb4b4b4.Te6edf3addressStringTb4b4b4)
Tb4b4b4}
Tf0883e@Test
Tff7b72fun Td2a8ffcontactKey_channelOrNull_returnsDigitForPrefixedKeyTb4b4b4(Tb4b4b4) Tb4b4b4{
Te6edf3assertEqualsTb4b4b4(T79c0ff2Tb4b4b4, Te6edf3ContactKeyTb4b4b4(Ta5d6ff"Ta5d6ff2!abcdef01Ta5d6ff"Tb4b4b4)Tb4b4b4.Te6edf3channelOrNullTb4b4b4)
Te6edf3assertEqualsTb4b4b4(T79c0ff0Tb4b4b4, Te6edf3ContactKeyTb4b4b4(Ta5d6ff"Ta5d6ff0^allTa5d6ff"Tb4b4b4)Tb4b4b4.Te6edf3channelOrNullTb4b4b4)
Tb4b4b4}
Tf0883e@Test
Tff7b72fun Td2a8ffcontactKey_unprefixedKey_signalsNoChannelAndKeepsWholeAddressTb4b4b4(Tb4b4b4) Tb4b4b4{
T8b949e// A legacy direct-message key has no leading channel digit. channelOrNull must stay null so
T8b949e// callers can distinguish it from channel 0, and addressString must keep the whole string.
Tff7b72val Te6edf3key Tff7b72= Te6edf3ContactKeyTb4b4b4(Ta5d6ff"Ta5d6ff!abcdef01Ta5d6ff"Tb4b4b4)
Te6edf3assertNullTb4b4b4(Te6edf3keyTb4b4b4.Te6edf3channelOrNullTb4b4b4)
Te6edf3assertEqualsTb4b4b4(T79c0ff0Tb4b4b4, Te6edf3keyTb4b4b4.Te6edf3channelTb4b4b4)
Te6edf3assertEqualsTb4b4b4(Ta5d6ff"Ta5d6ff!abcdef01Ta5d6ff"Tb4b4b4, Te6edf3keyTb4b4b4.Te6edf3addressStringTb4b4b4)
Tb4b4b4}
Tf0883e@Test
Tff7b72fun Td2a8ffcontactKey_emptyKey_isSafeTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72val Te6edf3key Tff7b72= Te6edf3ContactKeyTb4b4b4(Ta5d6ff"Ta5d6ff"Tb4b4b4)
Te6edf3assertNullTb4b4b4(Te6edf3keyTb4b4b4.Te6edf3channelOrNullTb4b4b4)
Te6edf3assertEqualsTb4b4b4(Ta5d6ff"Ta5d6ff"Tb4b4b4, Te6edf3keyTb4b4b4.Te6edf3addressStringTb4b4b4)
Tb4b4b4}
Tf0883e@Test
Tff7b72fun Td2a8ffcontactKey_address_parsesCorrectlyTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72val Te6edf3key Tff7b72= Te6edf3ContactKeyTb4b4b4(Ta5d6ff"Ta5d6ff0^localTa5d6ff"Tb4b4b4)
Te6edf3assertEqualsTb4b4b4(Te6edf3NodeAddressTb4b4b4.Te6edf3LocalTb4b4b4, Te6edf3keyTb4b4b4.Te6edf3addressTb4b4b4)
Tb4b4b4}
Tf0883e@Test
Tff7b72fun Td2a8ffcontactKey_broadcast_factoryTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72val Te6edf3key Tff7b72= Te6edf3ContactKeyTb4b4b4.Te6edf3broadcastTb4b4b4(T79c0ff1Tb4b4b4)
Te6edf3assertEqualsTb4b4b4(Ta5d6ff"Ta5d6ff1^allTa5d6ff"Tb4b4b4, Te6edf3keyTb4b4b4.Te6edf3valueTb4b4b4)
Te6edf3assertEqualsTb4b4b4(Te6edf3NodeAddressTb4b4b4.Te6edf3BroadcastTb4b4b4, Te6edf3keyTb4b4b4.Te6edf3addressTb4b4b4)
Tb4b4b4}
T8b949e// --- DataPacket extensions ---
Tff7b72private Tff7b72fun Td2a8fftestPacketTb4b4b4(Te6edf3toTb4b4b4: Tffa657String? Tff7b72= Ta5d6ff"Ta5d6ff^allTa5d6ff"Tb4b4b4, Te6edf3fromTb4b4b4: Tffa657String? Tff7b72= Ta5d6ff"Ta5d6ff^localTa5d6ff"Tb4b4b4) Tff7b72=
Te6edf3DataPacketTb4b4b4(Te6edf3to Tff7b72= Te6edf3toTb4b4b4, Te6edf3bytes Tff7b72= Tff7b72nullTb4b4b4, Te6edf3dataType Tff7b72= Te6edf3PortNumTb4b4b4.Te6edf3TEXT_MESSAGE_APPTb4b4b4.Te6edf3valueTb4b4b4, Te6edf3from Tff7b72= Te6edf3fromTb4b4b4)
Tf0883e@Test
Tff7b72fun Td2a8ffdataPacket_destination_parsesBroadcastTb4b4b4(Tb4b4b4) Tb4b4b4{
Te6edf3assertEqualsTb4b4b4(Te6edf3NodeAddressTb4b4b4.Te6edf3BroadcastTb4b4b4, Te6edf3testPacketTb4b4b4(Te6edf3to Tff7b72= Ta5d6ff"Ta5d6ff^allTa5d6ff"Tb4b4b4)Tb4b4b4.Te6edf3destinationTb4b4b4)
Tb4b4b4}
Tf0883e@Test
Tff7b72fun Td2a8ffdataPacket_source_parsesLocalTb4b4b4(Tb4b4b4) Tb4b4b4{
Te6edf3assertEqualsTb4b4b4(Te6edf3NodeAddressTb4b4b4.Te6edf3LocalTb4b4b4, Te6edf3testPacketTb4b4b4(Te6edf3from Tff7b72= Ta5d6ff"Ta5d6ff^localTa5d6ff"Tb4b4b4)Tb4b4b4.Te6edf3sourceTb4b4b4)
Tb4b4b4}
Tf0883e@Test
Tff7b72fun Td2a8ffdataPacket_isFromLocal_trueForLocalTb4b4b4(Tb4b4b4) Tb4b4b4{
Te6edf3assertTrueTb4b4b4(Te6edf3testPacketTb4b4b4(Te6edf3from Tff7b72= Ta5d6ff"Ta5d6ff^localTa5d6ff"Tb4b4b4)Tb4b4b4.Te6edf3isFromLocalTb4b4b4(Tb4b4b4)Tb4b4b4)
Tb4b4b4}
Tf0883e@Test
Tff7b72fun Td2a8ffdataPacket_isFromLocal_trueForMatchingNodeNumTb4b4b4(Tb4b4b4) Tb4b4b4{
Te6edf3assertTrueTb4b4b4(Te6edf3testPacketTb4b4b4(Te6edf3from Tff7b72= Ta5d6ff"Ta5d6ff!000000ffTa5d6ff"Tb4b4b4)Tb4b4b4.Te6edf3isFromLocalTb4b4b4(Te6edf3myNodeNum Tff7b72= T79c0ff0Te6edf3xffTb4b4b4)Tb4b4b4)
Tb4b4b4}
Tf0883e@Test
Tff7b72fun Td2a8ffdataPacket_isFromLocal_falseForDifferentNodeNumTb4b4b4(Tb4b4b4) Tb4b4b4{
Te6edf3assertFalseTb4b4b4(Te6edf3testPacketTb4b4b4(Te6edf3from Tff7b72= Ta5d6ff"Ta5d6ff!000000ffTa5d6ff"Tb4b4b4)Tb4b4b4.Te6edf3isFromLocalTb4b4b4(Te6edf3myNodeNum Tff7b72= T79c0ff0Te6edf3xaaTb4b4b4)Tb4b4b4)
Tb4b4b4}
Tf0883e@Test
Tff7b72fun Td2a8ffdataPacket_isFromLocal_falseWithoutNodeNumTb4b4b4(Tb4b4b4) Tb4b4b4{
Te6edf3assertFalseTb4b4b4(Te6edf3testPacketTb4b4b4(Te6edf3from Tff7b72= Ta5d6ff"Ta5d6ff!000000ffTa5d6ff"Tb4b4b4)Tb4b4b4.Te6edf3isFromLocalTb4b4b4(Te6edf3myNodeNum Tff7b72= Tff7b72nullTb4b4b4)Tb4b4b4)
Tb4b4b4}
Tf0883e@Test
Tff7b72fun Td2a8ffdataPacket_isBroadcast_trueForBroadcastDestinationTb4b4b4(Tb4b4b4) Tb4b4b4{
Te6edf3assertTrueTb4b4b4(Te6edf3testPacketTb4b4b4(Te6edf3to Tff7b72= Ta5d6ff"Ta5d6ff^allTa5d6ff"Tb4b4b4)Tb4b4b4.Te6edf3isBroadcastTb4b4b4)
Tb4b4b4}
Tf0883e@Test
Tff7b72fun Td2a8ffdataPacket_isBroadcast_falseForUnicastDestinationTb4b4b4(Tb4b4b4) Tb4b4b4{
Te6edf3assertFalseTb4b4b4(Te6edf3testPacketTb4b4b4(Te6edf3to Tff7b72= Ta5d6ff"Ta5d6ff!12345678Ta5d6ff"Tb4b4b4)Tb4b4b4.Te6edf3isBroadcastTb4b4b4)
Tb4b4b4}
Tb4b4b4}
Served by rngit 1.5.0 - Generated in 0.09s